/*
 * Copyright (c) 2008 Benoit Bouchez, Nicolas Giard
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
package com.noocodecommit.wicket.stuff.jquery.plugin.lightbox;

import com.noocodecommit.wicket.stuff.jquery.plugin.JQPluginOptions;

/**
 * 
 * @author Nicolas Giard
 */
public class JQLightboxOptions extends JQPluginOptions
{
	private String fileLoadingImage = "resources/com.noocodecommit.wicket.stuff.jquery.plugin.lightbox.JQLightboxPlugin/images/loading.gif";
	private String fileBottomNavCloseImage = "resources/com.noocodecommit.wicket.stuff.jquery.plugin.lightbox.JQLightboxPlugin/images/closelabel.gif";

	private double overlayOpacity = 0.8;
	private int borderSize = 10;
	private boolean inprogress = false;
	private int resizeSpeed = 350;
	private int widthCurrent = 250;
	private int heightCurrent = 250;
	private int xScale = 1;
	private int yScale = 1;
	private boolean displayTitle = true;
	private boolean navbarOnTop = false;
	private boolean slideNavBar = false; // slide nav bar up/down between image resizing transitions
	private int navBarSlideSpeed = 350;
	private boolean displayHelp = false;

	/**
	 * Constructor
	 */
	public JQLightboxOptions()
	{
		super();
		this.setDefaultHeader("lightbox");

		this.options.put("fileLoadingImage", "fileLoadingImage:'" + fileLoadingImage + "'");
		this.options.put("fileBottomNavCloseImage", "fileBottomNavCloseImage:'" + fileBottomNavCloseImage + "'");
	}

	/**
	 * 
	 * @return String
	 */
	public String getFileLoadingImage()
	{
		return fileLoadingImage;
	}

	/**
	 * 
	 * @param fileLoadingImage
	 */
	public void setFileLoadingImage(String fileLoadingImage)
	{
		this.fileLoadingImage = fileLoadingImage;
		this.options.put("fileLoadingImage", "fileLoadingImage:'" + fileLoadingImage + "'");
	}

	/**
	 * 
	 * @return String
	 */
	public String getFileBottomNavCloseImage()
	{
		return fileBottomNavCloseImage;
	}

	/**
	 * 
	 * @param fileBottomNavCloseImage
	 */
	public void setFileBottomNavCloseImage(String fileBottomNavCloseImage)
	{
		this.fileBottomNavCloseImage = fileBottomNavCloseImage;
		this.options.put("fileBottomNavCloseImage", "fileBottomNavCloseImage:'" + fileBottomNavCloseImage + "'");
	}

	/**
	 * 
	 * @return double
	 */
	public double getOverlayOpacity()
	{
		return overlayOpacity;
	}

	/**
	 * 
	 * @param overlayOpacity
	 */
	public void setOverlayOpacity(double overlayOpacity)
	{
		this.overlayOpacity = overlayOpacity;
		this.options.put("overlayOpacity", "overlayOpacity" + overlayOpacity);
	}

	/**
	 * 
	 * @return int
	 */
	public int getBorderSize()
	{
		return borderSize;
	}

	/**
	 * 
	 * @param borderSize
	 */
	public void setBorderSize(int borderSize)
	{
		this.borderSize = borderSize;
		this.options.put("borderSize", "borderSize:" + borderSize);
	}

	/**
	 * 
	 * @return boolean
	 */
	public boolean isInprogress()
	{
		return inprogress;
	}

	/**
	 * 
	 * @param inprogress
	 */
	public void setInprogress(boolean inprogress)
	{
		this.inprogress = inprogress;
		this.options.put("inprogress", "inprogress:" + inprogress);
	}

	/**
	 * 
	 * @return int
	 */
	public int getResizeSpeed()
	{
		return resizeSpeed;
	}

	/**
	 * 
	 * @param resizeSpeed
	 */
	public void setResizeSpeed(int resizeSpeed)
	{
		this.resizeSpeed = resizeSpeed;
		this.options.put("resizeSpeed", "resizeSpeed:" + resizeSpeed);
	}

	/**
	 * 
	 * @return int
	 */
	public int getWidthCurrent()
	{
		return widthCurrent;
	}

	/**
	 * 
	 * @param widthCurrent
	 */
	public void setWidthCurrent(int widthCurrent)
	{
		this.widthCurrent = widthCurrent;
		this.options.put("widthCurrent", "widthCurrent:" + widthCurrent);
	}

	/**
	 * 
	 * @return int
	 */
	public int getHeightCurrent()
	{
		return heightCurrent;
	}

	/**
	 * 
	 * @param heightCurrent
	 */
	public void setHeightCurrent(int heightCurrent)
	{
		this.heightCurrent = heightCurrent;
		this.options.put("heightCurrent", "heightCurrent:" + heightCurrent);
	}

	/**
	 * 
	 * @return int
	 */
	public int getXScale()
	{
		return xScale;
	}

	/**
	 * 
	 * @param scale
	 */
	public void setXScale(int scale)
	{
		xScale = scale;
		this.options.put("xScale", "xScale:" + xScale);
	}

	/**
	 * 
	 * @return int
	 */
	public int getYScale()
	{
		return yScale;
	}

	/**
	 * 
	 * @param scale
	 */
	public void setYScale(int scale)
	{
		yScale = scale;
		this.options.put("yScale", "yScale:" + yScale);
	}

	/**
	 * 
	 * @return boolean
	 */
	public boolean isDisplayTitle()
	{
		return displayTitle;
	}

	/**
	 * @param displayTitle
	 */
	public void setDisplayTitle(boolean displayTitle)
	{
		this.displayTitle = displayTitle;
		this.options.put("displayTitle", "displayTitle:" + displayTitle);
	}

	/**
	 * 
	 * @return boolean
	 */
	public boolean isNavbarOnTop()
	{
		return navbarOnTop;
	}

	/**
	 * 
	 * @param navbarOnTop
	 */
	public void setNavbarOnTop(boolean navbarOnTop)
	{
		this.navbarOnTop = navbarOnTop;
		this.options.put("navbarOnTop", "navbarOnTop:" + navbarOnTop);
	}

	/**
	 * 
	 * @return boolean
	 */
	public boolean isSlideNavBar()
	{
		return slideNavBar;
	}

	/**
	 * 
	 * @param slideNavBar
	 */
	public void setSlideNavBar(boolean slideNavBar)
	{
		this.slideNavBar = slideNavBar;
		this.options.put("slideNavBar", "slideNavBar:" + slideNavBar);
	}

	/**
	 * 
	 * @return int
	 */
	public int getNavBarSlideSpeed()
	{
		return navBarSlideSpeed;
	}

	/**
	 * 
	 * @param navBarSlideSpeed
	 */
	public void setNavBarSlideSpeed(int navBarSlideSpeed)
	{
		this.navBarSlideSpeed = navBarSlideSpeed;
		this.options.put("navBarSlideSpeed", "navBarSlideSpeed:" + navBarSlideSpeed);
	}

	/**
	 * 
	 * @return boolean
	 */
	public boolean isDisplayHelp()
	{
		return displayHelp;
	}

	/**
	 * 
	 * @param displayHelp
	 */
	public void setDisplayHelp(boolean displayHelp)
	{
		this.displayHelp = displayHelp;
		this.options.put("displayHelp", "displayHelp:" + displayHelp);
	}
}